var autoMock = require('hy5b/auto');
var Random = autoMock.Random;


Random.extend({
    constellation: function(date) {
        var constellations = ['白羊座', '金牛座', '双子座', '巨蟹座', '狮子座', '处女座', '天秤座', '天蝎座', '射手座', '摩羯座', '水瓶座', '双鱼座']
        return this.pick(constellations);
    }
})

console.log(Random.integer( 0,20 ));

console.log(

  autoMock({
    "string1|1-10": "abc", // (abc){1,10} // abcabc
    'string2|3': 'cde', // (cde){3} //cdecde
    "number1|1-100": 1, // 生成一个大于等于 min、小于等于 max 的整数,后面的1无效，只需要是数字 //53
    "number2|1-100.2": 1, // 生成一个浮点数，整数部分大于等于 min、小于等于 max，小数部分保留 dmin 到 dmax 位。 //53.12
    "boolean|1": true, // true or false
    "object|2-3": {
      "310000": "上海市",
      "320000": "江苏省",
      "330000": "浙江省",
      "340000": "安徽省"
    }, // 选择其中2~3个属性组成的新对象
    "array1|1": [
      "AMD",
      "CMD",
      "UMD"
    ], // 选择数组中的一个值
    "array2|1-10": [{
      "name|+1": [
        "Hello",
        "Mock.js",
        "!"
      ]
    }], // +1用在内层才有效，表示1~10组对象数组中对象的name属性的值依次改变
    'comments|1-10': [{
                'id|+1': 1,
                'text': '@sentence',
                'source': '<a href="#"> @word </a>',
                'status': {
                  'favorited|1': true
                }
              }],
    "foo": 'Hello',
    "foo2": function() {
      return this.foo
    },
    'regexp1|3-5': /\d{5,10}\-/, // 正则表达式
    'regexp2': /[a-z][A-Z][0-9]/,

    "nested": {
      "a": {
        "b": {
          "c": "Mock.js"
        }
      }
    },
    "absolutePath": "@/foo @/nested/a/b/c", // Absolute Path
    "relativePath": {
      "a": {
        "b": {
          "c": "@../../../foo @../../../nested/a/b/c"
        }
      }
    },

    'natural1':'@natural', // 自然数
    'natural2':'@natural(300)', // 大于300
    'natural3':'@natural(300, 1000)', // 大于300, 小于1000
 
    'integer1': '@integer', // 整数

    'float1': '@float(1, 100, 3)', // 1~100的浮点数，至少3位小数
    'float2': '@float(1, 100, 3, 5)', // 1~100的浮点数，3~5位小数

    'charactor1': '@character', // 任意字符
    'charactor2': '@character("lower")', // 小写
    'charactor3': '@character("upper")', // 大写
    'charactor4': '@character("number")', // 字符数字
    'charactor5': '@character("symbol")', // 符号
    'charactor6': '@character("abcdefg")', // select from pool

    'string3': '@string(5)', // 5个字符长度的字符串
    'string4': '@string("lower", 5)',
    'string5': '@string("upper", 5)',
    'string6': '@string("number", 5)',
    'string7': '@string("symbol", 5)',
    'string8': '@string("abcdefg", 5)',
    'string9': '@string(5,10)',
    'string10': '@string("lower", 5, 10)',
    'string11': '@string("upper", 5, 10)',
    'string12': '@string("number", 5, 10)',
    'string13': '@string("symbol", 5, 10)',
    'string14': '@string("abcdefg", 5, 10)',

    'range1': '@range(10)', // 输出0~10步长为1的数字组成的数组
    'range2': '@range(10, 20)', // 输出10~20步长为1的数字组成的数组
    'range3': '@range(10, 20, 2)', // 输出10~20步长为2的数字组成的数组

    'date1': '@date("yyyy-MM-dd")',
    'date2': '2016-02-@date("dd")',

    'time1': '@time',
    'time2': '@time("A HH:mm:ss")',
    'datetime1': '@datetime("yyyy-MM-dd HH:mm:ss,SS")',// SS 保留到毫秒，不够3位补0，1个S不补0
    'datetime2': '@datetime("T")',// t是ms
    'now': '@now()',
    'img1': '@image()', // 随机生成一个在线img地址 // http://dummyimage.com/728x90
    'img2': '@image( "300x100", "#3344ff", "#fff", "png", "abc")', // (size) // ( size, background ) // ( size, background, text ) // ( size, background, foreground, text ) // ( size, background, foreground, format, text )
    'color1':'@color', // #79f279
    'hex1': '@hex', // #db79f2
    'color2': '@rgb',
    'color3': '@rgba',
    'color4': '@hsl',
    'paragraph': '@paragraph()', // 一段英文
    'sentence': '@sentence', // 一句英文
    'word': '@word(4,8)', //一个单词
    'title': '@title(3,7)', // 几个单词
    'cparagraph': '@cparagraph', // 一段中文
    'csentence': '@csentence', // 一名中文
    'cword': '@cword',
    'ctitle': '@ctitle',
    'name1': '@name',
    'name2': '@first',
    'name3': '@last',
    'cname1': '@cname',
    'cname2': '@cfirst',
    'cname3': '@clast',

    'url1': '@url',
    'domain1': '@domain',
    'protocol1': '@protocol',
    'tld1': '@tld', // 域名后缀 .org/.net etc.
    'email1': '@email', // E-mail 地址
    'ip1': '@ip', // IP地址
    'region1': '@region', // 西南/东北 etc.

    'province1': '@province', //省
    'city1': '@city',// 市
    'city2': '@city(true)',// 市
    'county1': '@county',//区或者县
    'county2': '@county(true)',//省市区连在一起
    'zip1': '@zip',//邮编
    'capitalize1': '@capitalize("hello")', // 首字母大写
    'upper1': '@upper("hello")', //大写
    'lower1': '@lower("HELLO")',

    'pick1': '@pick(["a", "e", "i", "o", "u"])', // 选一个
    'shuffle1': '@shuffle(["a", "e", "i", "o", "u"])', // 乱序

    'guid1': '@lower(@guid)',
    'id1': '@id',
    'increment1': '@increment', // 和+1作用一致，在同一个程序中，运行到下一次的时候，值自加1
    'increment2': '@increment(100)', // 运行到下一次的时候，值自加100
    'diy1': '@constellation', // 自定义的 misc
    end: 0
  }));
